package com.wicket.okrcalc.integration.dto;

import com.wicket.okrcalc.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc CalculateAndCreateFatherProcessReportScoreStandardDataComReqDto
 * @使用场景
 */
@Data
public class CalculateAndCreateFatherProcessReportScoreStandardDataComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 来源目标周期ID
   */
  @ApiModelProperty("来源目标周期ID")
  private String sourceEvaObjTargetCycleId;

  /**
   * 被评对象目标周期ID
   */
  @NotNull(message = "被评对象目标周期ID不能为空")
  @ApiModelProperty("被评对象目标周期ID")
  private String evaObjTargetCycleId;

  /**
   * 周期ID
   */
  @NotNull(message = "周期ID不能为空")
  @ApiModelProperty("周期ID")
  private String cycleId;

  /**
   * 父子中周期类型 PARENT_CYCLE:父周期 SUB_CYCLE:子周期 MID_CYCLE:中期
   */
  @ApiModelProperty("父子中周期类型")
  private String parentSubMidCycleType;

  /**
   * 关联目标内容类型编码 TARGET:目标 TARGET_CATEGORY:目标分类 OBJECTIVE:指标
   */
  @NotNull(message = "关联目标内容类型编码不能为空")
  @ApiModelProperty("关联目标内容类型编码")
  private String targetCycleContentTypeCode;

  /**
   * 冗余开启OKR场景
   */
  @NotNull(message = "冗余开启OKR场景不能为空")
  @ApiModelProperty("冗余开启OKR场景")
  private String isOkrPlanScene;

  /**
   * 小数点规则
   */
  @NotNull(message = "小数点规则不能为空")
  @ApiModelProperty("小数点规则")
  private Long decimalPointRules;

  /**
   * 小数最后一位规则 MALING:尾数抹零 ROUNDED:尾数四舍五入
   */
  @NotNull(message = "小数最后一位规则不能为空")
  @ApiModelProperty("小数最后一位规则")
  private String decimalDigitsLastRules;

  /**
   * 末级周期类型 HALF_YEAR:半年 QUARTER:季度 DOUBLE_MONTHS:双月 MONTH:月 DOUBLE_WEEKS:双周 WEEK:周
   */
  @NotNull(message = "末级周期类型不能为空")
  @ApiModelProperty("末级周期类型")
  private String lastCycleType;

  /**
   * 冗余评价模板ID
   */
  @NotNull(message = "冗余评价模板ID不能为空")
  @ApiModelProperty("冗余评价模板ID")
  private String evaluationTemplateId;

  /**
   * 中期被评对象目标周期ID
   */
  @NotNull(message = "中期被评对象目标周期ID不能为空")
  @ApiModelProperty("中期被评对象目标周期ID")
  private String midEvaObjTargetCycleId;

  /**
   * 中期周期ID
   */
  @NotNull(message = "中期周期ID不能为空")
  @ApiModelProperty("中期周期ID")
  private String midCycleId;

  /**
   * 汇报平均分权重
   */
  @NotNull(message = "汇报平均分权重不能为空")
  @ApiModelProperty("汇报平均分权重")
  private String reportAvgScoreWeight;

  /**
   * 下级KR权重
   */
  @NotNull(message = "下级KR权重不能为空")
  @ApiModelProperty("下级KR权重")
  private Double krWeight;

  /**
   * 中期汇报得分权重
   */
  @NotNull(message = "中期汇报得分权重不能为空")
  @ApiModelProperty("中期汇报得分权重")
  private String midReportWeight;

}
